home *** CD-ROM | disk | FTP | other *** search
/ Amoszine 3 / Amoszine 3.adf / MORE_SOURCE / F1Colourcode.AMOS.pp / F1Colourcode.AMOS / F1Colourcode.amosSourceCode < prev    next >
AMOS Source Code  |  1992-02-26  |  7KB  |  273 lines

  1. ' ******************************************   
  2. ' * COLOURCODE  by Dave King June 1993     *     
  3. ' ******************************************   
  4. '  
  5. ' A Version of the board game Mastermind 
  6. '  
  7. ' ************************************************************************   
  8. ' *                                                                      *       
  9. ' * Palette Colours : -                                                  *     
  10. ' *                                                                      *     
  11. ' *  0 - Black        1 - Brown        2 - White        3 - Orange       *           
  12. ' *  4 - Red          5 - Green        6 - Blue         7 - Grey         *               
  13. ' *  8 - Dark Grey    9 - Yellow      10 - Mauve       11 - Dark Green   *           
  14. ' * 12 - Pink        13 - Dark Blue   14 - Light Grey  15 - Cyan         *             
  15. ' *                                                                      *   
  16. ' ************************************************************************   
  17. '
  18. ' ***********************************************************************
  19. ' * Variable list : -                                                   *          
  20. ' *                                                                     *    
  21. ' *  C() 1-4 The four Code Sequence Numbers                             *
  22. ' *  P() 1-4 Copy of The four Code Sequence Numbers                     *
  23. ' *  G() 1-4 The four Code Sequence Guessed                             *
  24. ' *  C     - Colour Indicator                                           *    
  25. ' *  BC    - Count of Correct Colours                                   *
  26. ' *  BLC   - Count of Incorrect Colours                                 *
  27. ' *  GUESS - Number of Guesses Entered                                  *    
  28. ' *                                                                     *    
  29. ' ***********************************************************************    
  30. '
  31. Screen Open 0,320,216,16,Lowres
  32. Flash Off 
  33. Get Sprite Palette 
  34. For N=1 To 10 : No Mask N : Next N
  35. Randomize Timer
  36. Dim C(4),P(4),G(4)
  37. BEGIN:
  38. Paper 7 : Pen 2 : Cls 
  39. Curs Off 
  40. Gosub BOARD_DRAW
  41. Gosub RANDOM_SELECT
  42. C=0 : GO=1
  43. '
  44. ' *** MAIN LOOP START *****************************  
  45. '
  46. For Y=24 To 164 Step 15
  47.    Locate 7,23 : Paper 8 : Pen 9 : Print " Enter Guess Number";GO;" ? " : Paper 7 : Pen 2
  48.    Repeat 
  49.       PASS=0
  50.       For X=151 To 211 Step 20
  51.          Paste Bob X,Y,1
  52.       Next X
  53.       GUESS=0
  54.       For X=151 To 211 Step 20
  55.          Clear Key 
  56.          Wait 3 : K=0
  57.          GUESS=GUESS+1
  58.          If C=1 and GUESS>1 Then GUESS=GUESS-1
  59.          If C=1 Then X=X-20
  60.          If X<151 Then X=151
  61.          Limit Mouse 157,72 To 170,194
  62.          Do 
  63.             K=0
  64.             A=X Mouse : B=Y Mouse
  65.             K=Mouse Key
  66.             If A>157 and A<170 and B>72 and B<84 and K=1 Then C=2 : Exit 
  67.             If A>157 and A<170 and B>88 and B<98 and K=1 Then C=3 : Exit 
  68.             If A>157 and A<170 and B>104 and B<114 and K=1 Then C=4 : Exit 
  69.             If A>157 and A<170 and B>120 and B<130 and K=1 Then C=5 : Exit 
  70.             If A>157 and A<170 and B>136 and B<146 and K=1 Then C=6 : Exit 
  71.             If A>157 and A<170 and B>152 and B<162 and K=1 Then C=7 : Exit 
  72.             If A>157 and A<170 and B>184 and B<194 and K=1 Then C=1 : Exit 
  73.          Loop 
  74.          If C=1 and GUESS>1 Then GUESS=GUESS-1 : Boom 
  75.          If C=1 Then X=X-20
  76.          If X<151 Then X=151
  77.          Paste Bob X,Y,C
  78.          G(GUESS)=C
  79.          Wait 8
  80.       Next X
  81.       Wait 4 : K=0
  82.       Locate 7,23 : Pen 9 : Print "                           "
  83.       Limit Mouse 287,244 To 381,255
  84.       For N=24 To 30
  85.          Play 4,N,1
  86.       Next N
  87.       Ink 4,8 : Text 50,202," ENTER CODE "
  88.       Ink 10,2 : Text 160,202," Yes "
  89.       Ink 9,4 : Text 220,202," No "
  90.       X Mouse=337 : Y Mouse=249
  91.       Do 
  92.          A=X Mouse : B=Y Mouse : K=Mouse Key
  93.          If K=1 and A<329 Then PASS=1 : Exit 
  94.          If K=1 and A>348 Then Exit 
  95.       Loop 
  96.       Ink 7 : Bar 50,195 To 251,205
  97.    Until PASS=1
  98.    B$=""
  99.    Gosub INDICATE
  100.    If B$="y" Then Goto BEGIN
  101.    If B$="n" Then End 
  102.    Wait 10 : GO=GO+1
  103. Next Y
  104. '
  105. ' ********* END OF MAIN LOOP ********************************  
  106. '
  107. ' *******************************  
  108. ' * DRAW BOARD ROUTINE          *  
  109. ' *******************************  
  110. '
  111. BOARD_DRAW:
  112. Restore DATPRINT
  113. DATPRINT:
  114. Data "= White","= Orange","= Green","= Red","= Yellow","= Cyan"
  115. BN=2 : B=24
  116. For N=3 To 13 Step 2
  117.    Read C$
  118.    Paste Bob 31,B,BN : BN=BN+1
  119.    Locate 6,N : Print C$
  120.    B=B+16
  121. Next N : Ink 2
  122. Locate 3,17 : Print "( ) to Erase"
  123. Box 146,4 To 262,172
  124. Ink 0 : Bar 147,6 To 261,18
  125. H$="COLOUR-CODE?"
  126. X=0
  127. Paper 0
  128. For N=1 To 11
  129.    Do 
  130.       LAST=X
  131.       X=Rnd(5)+2
  132.       If X=6 Then X=9
  133.       If X=7 Then X=15
  134.       If X<>LAST Then Exit 
  135.    Loop 
  136.    L$=Mid$(H$,N,1)
  137.    Locate 19+N,1
  138.    Pen X : Print L$
  139. Next N : Pen 2
  140. For X=151 To 214 Step 20
  141.    For Y=24 To 164 Step 15
  142.       Paste Bob X,Y,1
  143.    Next Y
  144. Next X
  145. For X=225 To 249 Step 8
  146.    For Y=24 To 164 Step 15
  147.       Paste Bob X,Y+1,8
  148.    Next Y
  149. Next X
  150. Ink 2 : Box 146,4 To 262,172
  151. Paper 7
  152. Return 
  153. '
  154. ' *******************************  
  155. ' * PRINT INDICATORS ROUTINE    *  
  156. ' *******************************  
  157. '
  158. INDICATE:
  159. For N=1 To 4 : P(N)=C(N)
  160. Next N
  161. BC=0 : BLC=0
  162. '
  163. ' *** INDICATE NUMBER RIGHT (BC) *** 
  164. '
  165. For N=1 To 4
  166.    If G(N)=C(N) Then BC=BC+1 : C(N)=9
  167. Next N
  168. '
  169. ' *** INDICATE NUMBER WRONG (BLC) ***
  170. '
  171. For K=1 To 4
  172.    For N=1 To 4
  173.       If N<>K and G(K)=C(N) and G(K)<>P(K) Then BLC=BLC+1 : C(N)=9 : Exit 
  174.    Next N
  175. Next K
  176. For N=1 To 4 : C(N)=P(N)
  177. Next N
  178. V=X-1 : Z=Y+4
  179. Ink 0
  180. For K=1 To BC
  181.    If BC=0 Then Exit 
  182.    Circle V,Z+1,2 : Paint V,Z+1,0
  183.    Bell 35
  184.    V=V+8
  185. Next K
  186. If BC=4 Then Gosub GAME_WIN : Return 
  187. Ink 2
  188. For K=1 To BLC
  189.    If BLC=0 Then Exit 
  190.    Circle V,Z+1,2 : Paint V,Z+1,0
  191.    V=V+8
  192.    Bell 3
  193. Next K
  194. If GO=10 Then Gosub GAME_LOOSE
  195. Return 
  196. '
  197. ' *******************************  
  198. ' * RANDOM SELECT ROUTINE       *  
  199. ' *******************************  
  200. '
  201. RANDOM_SELECT:
  202. '
  203. ' RANDOMLY GENERATE COLOUR SEQUENCE
  204. '
  205. For N=1 To 4
  206.    J=Rnd(5)+2
  207.    C(N)=J
  208. Next N
  209. Return 
  210. '
  211. ' *******************************  
  212. ' * WIN GAME ROUTINE            *  
  213. ' *******************************  
  214. '
  215. GAME_WIN:
  216. GO$=Str$(GO)
  217. Locate 7,23 : Pen 9 : Print "                           "
  218. Ink 2,0 : Text 30,170," WELL DONE "
  219. For K=2 To 6 Step 2
  220.    For J=20+K*2 To 35+K*2 Step 5
  221.       For N=J+2 To J+21 Step 3
  222.          Play 1,N,1
  223.       Next N
  224.    Next J
  225. Next K
  226. M$=" Moves" : If GO=1 Then M$=" Move"
  227. I$=GO$+M$
  228. Ink 2,6 : Text 20,186,"                                "
  229. Ink 2,6 : Text 28,186,"You Broke the Code in "
  230. Text 196,186,I$
  231. Gosub ANOTHER_GAME
  232. Return 
  233. '
  234. ' *******************************  
  235. ' * LOOSE GAME ROUTINE          *  
  236. ' *******************************  
  237. '
  238. GAME_LOOSE:
  239. Locate 7,23 : Pen 9 : Print "                           "
  240. Ink 2,0 : Text 22,170," YOU LOOSE! "
  241. For N=10 To 3 Step -1
  242.    Play 4,N,6
  243. Next N
  244. Ink 9,7 : Text 3,186,"The Correct Code ="
  245. For N=1 To 4
  246.    J=131+(N*20)
  247.    Paste Bob J,179,C(N)
  248. Next N
  249. Gosub ANOTHER_GAME
  250. Return 
  251. '
  252. ' *******************************  
  253. ' * PLAY AGAIN ROUTINE          *  
  254. ' *******************************  
  255. '
  256. ANOTHER_GAME:
  257. Wait 20
  258. Ink 4,8 : Text 50,202," PLAY AGAIN "
  259. Ink 10,2 : Text 160,202," Yes "
  260. Ink 9,4 : Text 220,202," No "
  261. Limit Mouse 287,244 To 381,255
  262. CL=0
  263. Do 
  264.    B$=Inkey$
  265.    If B$="y" Then Exit 
  266.    If B$="n" Then Exit 
  267.    X=X Mouse
  268.    Y=Y Mouse
  269.    CL=Mouse Click
  270.    If CL=1 and X<329 Then B$="y" : Exit 
  271.    If CL=1 and X>348 Then B$="n" : Exit 
  272. Loop 
  273. Return